package tags

import (
	"github.com/gin-gonic/gin"
	"savor_gin/controllers"
	. "savor_gin/errorType"
	"savor_gin/models"
	"strconv"
)

// 上传食谱信息
func AddTag(c *gin.Context) {
	var tag models.Tags
	if err := c.ShouldBindJSON(&tag); err != nil {
		controllers.SendResp(c, ParamBindError, nil)
		return
	}
	if err := tag.Create(); err != nil {
		controllers.SendResp(c, DataBaseError, nil)
		return
	}
	controllers.SendResp(c, OK, tag)
}

// 更新食谱信息
func UpdateTagInfo(c *gin.Context) {
	tagId, err := strconv.Atoi(c.Param("tagId"))
	if err != nil {
		controllers.SendResp(c, ParamBindError, err)
		return
	}
	s := &models.Tags{TagID: uint64(tagId)}
	if err := c.ShouldBind(s); err != nil {
		controllers.SendResp(c, ParamBindError, err)
		return
	}
	if err := s.Update(); err != nil {
		controllers.SendResp(c, DataBaseError, err)
		return
	}
	controllers.SendResp(c, OK, s)
}

// 删除食谱信息
func DeleteTag(c *gin.Context) {
	tagId, err := strconv.Atoi(c.Query("tagId"))
	if err != nil {
		controllers.SendResp(c, ParamBindError, err)
		return
	}
	s := &models.Tags{TagID: uint64(tagId)}
	if err := s.Delete(); err != nil {
		controllers.SendResp(c, DataBaseError, err)
		return
	}
	controllers.SendResp(c, OK, nil)
}

// 根据id获取食谱信息
func GetTagById(c *gin.Context) {
	tagId, err := strconv.Atoi(c.Query("tagId"))
	if err != nil {
		controllers.SendResp(c, ParamBindError, err)
		return
	}
	if s, err := models.GetTagsById(uint64(tagId)); err != nil {
		controllers.SendResp(c, DataBaseError, err)
		return
	} else {
		controllers.SendResp(c, OK, s)
	}
}

// 模糊查询食谱列表
func GetTagListLikeKey(c *gin.Context) {
	keyword := c.Query("keyword")
	if keyword == "" {
		controllers.SendResp(c, ParamBindError, nil)
		return
	}
	if s, err := models.GetTagByKey(keyword); err != nil {
		controllers.SendResp(c, DataBaseError, err)
		return
	} else {
		controllers.SendResp(c, OK, s)
	}
}
func GetTagList(c *gin.Context) {
	if s, err := models.GetTag(); err != nil {
		controllers.SendResp(c, DataBaseError, err)
		return
	} else {
		controllers.SendResp(c, OK, s)
	}
}
